|
XINU
|
関数のプロトタイプ宣言を集約したヘッダ More...

Go to the source code of this file.
Macros | |
| #define | htonl(x) |
| #define | htons(x) ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) |
| #define | ntohl(x) |
| #define | ntohs(x) ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) |
関数のプロトタイプ宣言を集約したヘッダ
Definition in file prototypes.h.
| #define htonl | ( | x | ) |
Definition at line 620 of file prototypes.h.
Referenced by arp_hton(), dhcp_bld_bootp_msg(), ip_hton(), rdscomm(), rflread(), rflwrite(), rfscomm(), and rfsopen().
| #define htons | ( | x | ) | ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) |
Definition at line 619 of file prototypes.h.
Referenced by arp_hton(), dns_bldq(), dnslookup(), eth_hton(), icmp_hton(), ip_hton(), ip_out(), ipcksum(), rdscontrol(), rdsopen(), rdsprocess(), rflread(), rflwrite(), rfscontrol(), rfsndmsg(), rfsopen(), tftpget_mb(), and udp_hton().
| #define ntohl | ( | x | ) |
Definition at line 623 of file prototypes.h.
Referenced by arp_ntoh(), dns_geta(), dnslookup(), getlocalip(), getutime(), ip_ntoh(), pdump(), rdscomm(), rflread(), rflwrite(), rfscomm(), rfscontrol(), and rfsndmsg().
| #define ntohs | ( | x | ) | ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) |
Definition at line 622 of file prototypes.h.
Referenced by arp_ntoh(), dns_geta(), dns_getrname(), eth_ntoh(), icmp_cksum(), icmp_ntoh(), ip_ntoh(), pdump(), pdumph(), rdscomm(), rdscontrol(), rdsopen(), rdsprocess(), rflread(), rflwrite(), rfscomm(), rfsopen(), tftp_send1(), and udp_ntoh().
| void _mkinit | ( | void | ) |
Definition at line 11 of file ptclear.c.
References NULL, PT_ALLOC, PT_LIMBO, ptfree, ptentry::pthead, ptentry::ptmaxcnt, ptnode::ptmsg, ptnode::ptnext, ptentry::ptrsem, ptentry::ptseq, ptentry::ptssem, ptentry::ptstate, ptentry::pttail, semdelete(), and semreset().
Referenced by ptdelete(), and ptreset().


Definition at line 11 of file addargs.c.
References disable(), memcpy(), NULL, OK, proctab, procent::prstkbase, procent::prstklen, procent::prstkptr, restore(), and SYSERR.
Referenced by shell().


| int32 arp_alloc | ( | void | ) |
Definition at line 298 of file arp.c.
References AR_FREE, AR_RESOLVED, ARP_SIZ, arpcache, arpentry::arstate, kprintf(), memset(), NULLCH, and SYSERR.
Referenced by arp_in(), and arp_resolve().


| void arp_hton | ( | struct arppacket * | ) |
Definition at line 348 of file arp.c.
References arppacket::arp_htype, arppacket::arp_op, arppacket::arp_ptype, arppacket::arp_sndpa, arppacket::arp_tarpa, htonl, and htons.
Referenced by arp_in(), and arp_resolve().

| void arp_in | ( | struct arppacket * | ) |
Definition at line 158 of file arp.c.
References AR_FREE, AR_PENDING, AR_RESOLVED, arpentry::arhaddr, arp_alloc(), arppacket::arp_ethdst, arppacket::arp_ethsrc, arppacket::arp_ethtype, ARP_HALEN, arppacket::arp_hlen, arp_hton(), ARP_HTYPE, arppacket::arp_htype, arp_ntoh(), arppacket::arp_op, ARP_OP_RPLY, ARP_PALEN, arppacket::arp_plen, ARP_PTYPE, arppacket::arp_ptype, ARP_SIZ, arppacket::arp_sndha, arppacket::arp_sndpa, arppacket::arp_tarha, arppacket::arp_tarpa, arpentry::arpaddr, arpcache, arpentry::arpid, arpentry::arstate, disable(), ETH_ARP, eth_hton(), ETHER0, network::ethucast, FALSE, freebuf(), network::ipucast, network::ipvalid, kprintf(), memcpy(), NetData, OK, restore(), send(), SYSERR, TRUE, and write().
Referenced by netin().


| void arp_init | ( | void | ) |
Definition at line 11 of file arp.c.
References AR_FREE, ARP_SIZ, arpcache, and arpentry::arstate.
Referenced by net_init().

| void arp_ntoh | ( | struct arppacket * | ) |
Definition at line 333 of file arp.c.
References arppacket::arp_htype, arppacket::arp_op, arppacket::arp_ptype, arppacket::arp_sndpa, arppacket::arp_tarpa, ntohl, and ntohs.
Referenced by arp_in().

Definition at line 16 of file ascdate.c.
References DATE_DST_AUTO, DATE_DST_ON, dateinfo::dt_daylight, dateinfo::dt_dnam, dateinfo::dt_mnam, dateinfo::dt_msize, FALSE, isleap, OK, SECPERDY, SECPERHR, SECPERMN, sprintf(), TIMEZONE, and TRUE.
Referenced by xsh_date().


| status bufinit | ( | void | ) |
プロセスのスケジューリング優先度を変更する。
Step1. 割り込みを禁止する。
Step2. 不正なPIDの場合は割り込み許可状態に戻し、処理を終了する。
Step3. 引数で指定されたPIDからプロセス情報を取得し、新しい優先度に変更する。
Step4. 割り込み許可状態に戻し、処理を終了する。
| [in] | pid | 優先度を変更したいプロセスのID |
| [in] | newprio | 新しい優先度 |
Definition at line 18 of file chprio.c.
References disable(), isbadpid, proctab, procent::prprio, restore(), and SYSERR.

| uint32 clkcount | ( | void | ) |
| interrupt clkhandler | ( | void | ) |
Definition at line 9 of file clkhandler.c.
References AM335X_TIMER1MS_TISR_OVF_IT_FLAG, clktime, count1000, firstid, isempty, preempt, QUANTUM, queuetab, resched(), sleepq, am335x_timer1ms::tisr, and wakeup().
Referenced by clkinit().


| void clkinit | ( | void | ) |
Definition at line 15 of file clkinit.c.
References AM335X_TIMER1MS_ADDR, AM335X_TIMER1MS_CLKCTRL_ADDR, AM335X_TIMER1MS_CLKCTRL_EN, AM335X_TIMER1MS_IRQ, AM335X_TIMER1MS_TCLR_AR, AM335X_TIMER1MS_TCLR_ST, AM335X_TIMER1MS_TIER_OVF_IT_ENA, AM335X_TIMER1MS_TIOCP_CFG_SOFTRESET, AM335X_TIMER1MS_TISTAT_RESETDONE, clkhandler(), clktime, count1000, newqueue(), preempt, QUANTUM, set_evec(), sleepq, am335x_timer1ms::tclr, am335x_timer1ms::tier, am335x_timer1ms::tiocp_cfg, am335x_timer1ms::tistat, am335x_timer1ms::tldr, am335x_timer1ms::tnir, am335x_timer1ms::tpir, and am335x_timer1ms::ttgr.
Referenced by sysinit().


| void clkint | ( | void | ) |
Definition at line 9 of file close.c.
References devtab, disable(), dentry::dvclose, isbaddev, restore(), and SYSERR.
Referenced by kill(), lfscreate(), xsh_cat(), and xsh_rdstest().


Definition at line 9 of file control.c.
References devtab, disable(), dentry::dvcntl, isbaddev, restore(), and SYSERR.
Referenced by net_init(), and shell().


関数の実行を開始するプロセスを作成する。
Step1. 割り込みを禁止する。
Step2. スタックサイズがMINSTKを下回っていた場合、サイズをMINSTKまで引き上げ、丸めを行う。
Step3. 以下のいずれかを満たした場合は、割り込み許可状態に復元し、SYSERRを返す。
・スタックが確保できなかった場合
・全てのプロセスがFREE状態ではなかった場合(使用中だった場合)
・引数のプロセス優先度が1より小さかった場合
Step4. アクティブプロセス数を1増やす。 Step5. プロセステーブルエントリを以下の状態で初期化する。
・プロセス状態 = サスペンド
・プロセス優先度 = 引数で指定した優先度
・スタックアドレス = getstk()で取得したスタックアドレス( プロセススタックの最上位にオーバフロー検知マーカを付与)
・スタックサイズ = 引数で指定されたスタックサイズ(MINSTK以上のサイズ)
・プロセス名 = 引数で指定した名前(15文字 + NULL終端)
・セマフォとメッセージ = 未使用状態
・デバイスディスクリプタ = XINU Shell用に0:STDIN(標準入力)、1:STDOUT(標準出力)、2:STDERR(標準エラー)を設定
Step6. 可変長引数と関数ポインタをスタックに積む。前提として、ARMはr0〜r3レジスタが引数渡しに使用される。
可変長引数の5個目〜N個目をスタックに積んだ後、関数ポインタをスタックに積む。
引数をレジスタ渡しするためにスタックにr4〜r11用の情報(=0)を積み、r3〜r0用の情報(引数次第で変化)を積む。
Step7. 関数のリターンアドレス(INITRET = userret()であり、kill()を呼び出す)をスタックに積む。
Step8. CPSR F bitを有効化し、スーパバイザモードに移行するためのビットマスクをスタックに積む。
スーパーバイザモードに移行する理由は、userret()内でシステムをDeadループさせるhalt()を実行するため(誤っている可能性高い)。
Step9. 新しいスタックアドレスをプロセステーブルにセットする。
Step10. 割り込み許可状態に復元する。
| [in] | procaddr | 関数ポインタ(プロセスのエントリポイント) |
| [in] | ssize | スタックサイズ(Byte) |
| [in] | priority | プロセスの優先度(> 0) |
| [in] | name | プロセス名(デバッグ用) |
| [in] | nargs | 本引数より後にある引数の総数 |
| [in] | ... | 可変長引数 |
Definition at line 59 of file create.c.
References CONSOLE, disable(), FALSE, getpid(), getstk(), INITRET, MINSTK, newpid(), NULLCH, PNMLEN, PR_SUSP, prcount, procent::prdesc, procent::prhasmsg, procent::prname, proctab, procent::prparent, procent::prprio, procent::prsem, procent::prstate, procent::prstkbase, procent::prstklen, procent::prstkptr, restore(), roundew, STACKMAGIC, and SYSERR.
Referenced by main(), net_init(), nulluser(), rdsinit(), shell(), and startup().


| void ctxsw | ( | void * | , |
| void * | |||
| ) |
プロセスキューテーブルからキューを削除し、リスト先頭のプロセスIDを返す。
| [in] | q | 使用するキューID |
Definition at line 78 of file queue.c.
References EMPTY, getfirst(), isbadqid, isempty, qentry::qnext, qentry::qprev, queuetab, and SYSERR.
Referenced by resched(), signal(), signaln(), and wakeup().


| intmask disable | ( | void | ) |
割り込み禁止(intr.Sに定義がある)
Referenced by addargs(), arp_in(), arp_resolve(), chprio(), close(), control(), create(), freebuf(), freemem(), getbuf(), getc(), getdev(), getmem(), getprio(), getstk(), icmp_in(), icmp_recv(), icmp_register(), icmp_release(), icmp_send(), init(), ip_enqueue(), ip_send(), irq_dispatch(), kgetc(), kill(), kputc(), mkbufpool(), mount(), open(), panic(), ptcount(), ptcreate(), ptdelete(), ptrecv(), ptreset(), ptsend(), putc(), rdscomm(), read(), receive(), recvclr(), recvtime(), resume(), seek(), semcount(), semcreate(), semdelete(), semreset(), send(), signal(), signaln(), sleepms(), suspend(), udp_in(), udp_recv(), udp_recvaddr(), udp_register(), udp_release(), udp_send(), udp_sendto(), unsleep(), wait(), write(), and yield().
| uint32 dnslookup | ( | char * | ) |
Definition at line 15 of file dns.c.
References currpid, dns_bldq(), dns_geta(), DNSLPORT, DNSPORT, DNSRETRY, network::dnsserver, DNSTIMEOUT, getlocalip(), htons, kprintf(), memset(), NetData, ntohl, NULL, SYSERR, TIMEOUT, udp_recv(), udp_register(), udp_release(), and udp_send().
Referenced by xsh_ping().


Definition at line 9 of file dot2ip.c.
References NULLCH, OK, and SYSERR.
Referenced by getlocalip(), getutime(), rdsinit(), rfsinit(), xsh_ping(), and xsh_udpecho().

| void enable | ( | void | ) |
プロセスをプロセスキューテーブルの末尾に挿入する。
| [in] | pid | 挿入するプロセスID |
| [in] | q | 使用するキューID |
Definition at line 53 of file queue.c.
References isbadpid, isbadqid, qentry::qnext, qentry::qprev, queuetab, queuetail, and SYSERR.
Referenced by wait().

| void eth_hton | ( | struct netpacket * | ) |
Definition at line 127 of file net.c.
References htons, and netpacket::net_ethtype.
Referenced by arp_in(), arp_resolve(), and ip_out().

| void eth_ntoh | ( | struct netpacket * | ) |
Definition at line 139 of file net.c.
References netpacket::net_ethtype, and ntohs.
Referenced by netin().

Definition at line 18 of file ethcontrol.c.
References ethcblk::devAddress, dentry::dvminor, ETH_ADDR_LEN, ETH_CTRL_GET_MAC, ethertab, memcpy(), OK, and SYSERR.

Definition at line 9 of file ethhandler.c.
References eth_a_csreg::cpdma, ethcblk::csr, DEFER_START, DEFER_STOP, eth_a_cpdma::eoi_vector, ETH_AM335X_RDS_OWN, ETH_AM335X_RXINT, ETH_AM335X_TDS_OWN, ETH_AM335X_TXINT, ethertab, ethcblk::isem, ethcblk::osem, resched_cntl(), eth_a_stateram::rx_cp, eth_a_stateram::rx_hdp, ethcblk::rxRing, ethcblk::rxRingSize, ethcblk::rxTail, semcount(), signal(), eth_a_rx_desc::stat, eth_a_tx_desc::stat, eth_a_csreg::stateram, eth_a_stateram::tx_cp, eth_a_stateram::tx_hdp, ethcblk::txHead, ethcblk::txRing, and ethcblk::txRingSize.

Definition at line 173 of file ethinit.c.
References eth_a_csreg::ale, eth_a_rx_desc::buffer, eth_a_tx_desc::buffer, eth_a_rx_desc::buflen, eth_a_tx_desc::buflen, eth_a_rx_desc::bufoff, eth_a_tx_desc::bufoff, eth_a_wr::c0_rx_en, eth_a_wr::c0_tx_en, eth_a_csreg::cpdma, ethcblk::csr, eth_a_ale::ctrl, eth_a_mdio::ctrl, ethcblk::devAddress, dentry::dvintr, dentry::dvminor, eth_a_regs, ETH_AM335X_ALE_ADDR, ETH_AM335X_ALECTL_BY, ETH_AM335X_ALECTL_EN, ETH_AM335X_ALEPCTL_FWD, ETH_AM335X_CPDMA_ADDR, ETH_AM335X_MDIO_ADDR, ETH_AM335X_MDIOCTL_EN, ETH_AM335X_RDS_OWN, ETH_AM335X_RX_RING_SIZE, ETH_AM335X_RXINT, ETH_AM335X_SL1_ADDR, ETH_AM335X_SLCTL_EN, ETH_AM335X_SLCTL_FD, ETH_AM335X_SS_ADDR, ETH_AM335X_STATERAM_ADDR, ETH_AM335X_TDS_DIR, ETH_AM335X_TDS_EOP, ETH_AM335X_TDS_P1, ETH_AM335X_TDS_SOP, ETH_AM335X_TX_RING_SIZE, ETH_AM335X_TXINT, ETH_AM335X_WR_ADDR, ETH_BUF_SIZE, ETH_PHY_1000M, ETH_PHY_100M, ETH_PHY_10M, ETH_PHY_CTLREG, ETH_PHY_CTLREG_FD, ETH_PHY_CTLREG_SM, eth_phy_read(), eth_phy_reset(), ethertab, getmem(), ethcblk::isem, kprintf(), eth_a_sl::macctrl, eth_a_csreg::mdio, memset(), netpacket::net_ethdst, eth_a_rx_desc::next, eth_a_tx_desc::next, NULL, NULLCH, OK, ethcblk::osem, eth_a_ale::portctl, eth_a_cpdma::reset, eth_a_sl::reset, eth_a_ss::reset, eth_a_wr::reset, eth_a_cpdma::rx_ctrl, eth_a_stateram::rx_hdp, eth_a_cpdma::rx_intmask_set, ethcblk::rxBufs, ethcblk::rxHead, ethcblk::rxRing, ethcblk::rxRingSize, ethcblk::rxTail, semcreate(), set_evec(), eth_a_csreg::sl, eth_a_csreg::ss, eth_a_rx_desc::stat, eth_a_tx_desc::stat, eth_a_csreg::stateram, SYSERR, eth_a_cpdma::tx_ctrl, eth_a_stateram::tx_hdp, eth_a_cpdma::tx_intmask_set, ethcblk::txBufs, ethcblk::txHead, ethcblk::txRing, ethcblk::txRingSize, ethcblk::txTail, and eth_a_csreg::wr.

Definition at line 9 of file ethread.c.
References eth_a_rx_desc::buffer, eth_a_rx_desc::buflen, eth_a_rx_desc::bufoff, ethcblk::csr, dentry::dvminor, ETH_AM335X_RDS_OWN, ETH_BUF_SIZE, ethertab, ethcblk::isem, kprintf(), memcpy(), eth_a_rx_desc::next, NULL, eth_a_rx_desc::packlen, eth_a_stateram::rx_hdp, ethcblk::rxHead, ethcblk::rxRing, ethcblk::rxRingSize, eth_a_rx_desc::stat, eth_a_csreg::stateram, and wait().

Definition at line 9 of file ethwrite.c.
References eth_a_tx_desc::buffer, eth_a_tx_desc::buflen, eth_a_tx_desc::bufoff, ethcblk::csr, dentry::dvminor, ETH_AM335X_TDS_DIR, ETH_AM335X_TDS_EOP, ETH_AM335X_TDS_OWN, ETH_AM335X_TDS_P1, ETH_AM335X_TDS_SOP, ethertab, memcpy(), memset(), eth_a_tx_desc::next, NULL, ethcblk::osem, PACKLEN, eth_a_tx_desc::packlen, eth_a_tx_desc::stat, eth_a_csreg::stateram, eth_a_stateram::tx_hdp, ethcblk::txRing, ethcblk::txRingSize, ethcblk::txTail, and wait().

| syscall freebuf | ( | char * | ) |
Definition at line 9 of file freebuf.c.
References bpentry::bpnext, bpentry::bpsem, buftab, disable(), nbpools, OK, restore(), signal(), and SYSERR.
Referenced by arp_in(), icmp_in(), icmp_recv(), icmp_release(), ip_enqueue(), ip_in(), ip_local(), ip_out(), ip_send(), ipout(), netin(), udp_in(), udp_recv(), udp_recvaddr(), and udp_release().


Definition at line 9 of file freemem.c.
References disable(), maxheap, memlist, minheap, memblk::mlength, memblk::mnext, NULL, OK, restore(), roundmb, and SYSERR.
Referenced by mkbufpool().


| char* getbuf | ( | bpid32 | ) |
Definition at line 9 of file getbuf.c.
References bpentry::bpnext, bpentry::bpsem, buftab, disable(), nbpools, restore(), SYSERR, and wait().
Referenced by icmp_mkpkt(), netin(), udp_send(), and udp_sendto().


キューの先頭からプロセスを取り出す。
| [in] | q | プロセスを取り出すためのキューID(チェックなしで有効) |
Definition at line 13 of file getitem.c.
References EMPTY, getitem(), isempty, queuehead, and queuetab.
Referenced by dequeue(), semdelete(), and semreset().


キューの任意の位置からプロセスを取り出す。
| [in] | pid | 取り出すプロセスID |
Definition at line 51 of file getitem.c.
References qentry::qnext, qentry::qprev, and queuetab.
Referenced by getfirst(), getlast(), kill(), suspend(), and unsleep().

| uint32 getlocalip | ( | void | ) |
Definition at line 142 of file dhcp.c.
References network::bootfile, network::bootserver, dhcp_bld_disc(), dhcp_bld_req(), dhcp_get_opt_val(), DHCP_RETRY, DHCP_SERVER_ID, network::dnsserver, dot2ip(), IP_BCAST, network::ipbcast, network::ipmask, network::ipprefix, network::iprouter, network::ipucast, network::ipvalid, kprintf(), memcpy(), NetData, ntohl, network::ntpserver, OK, SYSERR, TIMEOUT, TRUE, UDP_DHCP_CPORT, UDP_DHCP_SPORT, udp_recv(), udp_register(), udp_release(), and udp_sendto().
Referenced by dnslookup(), getutime(), rdscomm(), startup(), xsh_netinfo(), and xsh_udpeserver().


| char* getmem | ( | uint32 | ) |
Definition at line 9 of file getmem.c.
References disable(), memlist, memblk::mlength, memblk::mnext, NULL, restore(), roundmb, and SYSERR.
Referenced by ethinit(), mkbufpool(), ptinit(), and rdsinit().


| pid32 getpid | ( | void | ) |
現在実行中のプロセスIDを返す。
Definition at line 11 of file getpid.c.
References currpid.
Referenced by create(), exit(), rdscontrol(), rdsread(), rdswrite(), and userret().

| uint16 getport | ( | void | ) |
Definition at line 150 of file net.c.
References netportseed.
Referenced by tftpget_mb().

プロセスのスケジューリング優先度を取得する。
Step1. 割り込みを禁止する。
Step2. 不正なPIDの場合は割り込み許可状態に戻し、処理を終了する。
Step3. 引数で指定されたPIDからプロセス情報を取得し、そこから優先度を取得する。
Step4. 割り込み許可状態に戻し、処理を終了する。
| [in] | pid | 優先度を取得したいプロセスのID |
Definition at line 17 of file getprio.c.
References disable(), isbadpid, proctab, procent::prprio, restore(), and SYSERR.

| char* getstk | ( | uint32 | ) |
| uint32 getticks | ( | void | ) |
Definition at line 9 of file getticks.c.
Referenced by net_init().

Definition at line 9 of file gettime.c.
References getutime(), OK, SYSERR, and utim2ltim.
Referenced by xsh_date().


Definition at line 10 of file getutime.c.
References clktime, Date, dot2ip(), dateinfo::dt_boot, dateinfo::dt_bootvalid, fprintf(), getlocalip(), memset(), NetData, ntim2xtim, ntohl, network::ntpserver, OK, stderr, SYSERR, TIMELPORT, TIMEOUT, TIMERPORT, TIMESERVER, TIMETIMEOUT, TRUE, udp_recv(), udp_register(), udp_release(), and udp_send().
Referenced by gettime().


Definition at line 14 of file gpiocontrol.c.
References gpio_csreg::clear_data, gpio_csreg::datain, gpio_csreg::deb_ena, gpio_csreg::deb_time, dentry::dvcsr, dentry::dvminor, gpio_csreg::falling, gpiocblk::gphookfn, GPIO_DEB_SET_TIME, GPIO_INT_ALL_LINES, GPIO_INT_ALL_TRIG, GPIO_INT_FALL_TRIG, GPIO_INT_LINE0_EN, GPIO_INT_LINE1_EN, GPIO_INT_LVL0_TRIG, GPIO_INT_LVL1_TRIG, GPIO_INT_RISE_TRIG, GPIO_INTERRUPT_CTL, GPIO_OUTPUT_DISABLE, GPIO_OUTPUT_ENABLE, GPIO_READ_PIN, GPIO_REG_INT_HANDLER, GPIO_WRITE_PIN, gpiotab, gpio_csreg::irqclear0, gpio_csreg::irqclear1, gpio_csreg::irqset0, gpio_csreg::irqset1, gpio_csreg::level0, gpio_csreg::level1, gpio_csreg::oe, OK, PIN_MASK, gpio_csreg::rising, gpio_csreg::set_data, and SYSERR.
| void gpiohandler | ( | uint32 | ) |
Definition at line 9 of file gpiohandler.c.
References gpiocblk::gphookfn, GPIO0_BASE, GPIO0_INT_A, GPIO0_INT_B, GPIO1_BASE, GPIO1_INT_A, GPIO1_INT_B, GPIO2_BASE, GPIO2_INT_A, GPIO2_INT_B, GPIO3_BASE, GPIO3_INT_A, GPIO3_INT_B, gpiotab, gpio_csreg::irqstatus0, gpio_csreg::irqstatus1, and NULL.
Definition at line 11 of file gpioinit.c.
References gpio_csreg::clear_data, gpio_csreg::deb_ena, dentry::dvcsr, dentry::dvintr, dentry::dvirq, dentry::dvminor, gpio_csreg::falling, gpiocblk::gphookfn, GPIO1_BASE, GPIO2_BASE, GPIO3_BASE, gpiotab, gpio_csreg::irqclear0, gpio_csreg::irqclear1, gpio_csreg::irqstatus0, gpio_csreg::irqstatus1, gpio_csreg::irqwaken0, gpio_csreg::irqwaken1, gpio_csreg::level0, gpio_csreg::level1, NULL, gpio_csreg::oe, OK, PRCM_FCLK_BIT, PRCM_FCLK_GPIO1, PRCM_FCLK_GPIO2, PRCM_FCLK_GPIO3, gpio_csreg::rising, set_evec(), and gpio_csreg::sysconfig.

Definition at line 9 of file gpioread.c.
References gpio_csreg::datain, dentry::dvcsr, and OK.
Definition at line 9 of file gpiowrite.c.
References gpio_csreg::clear_data, dentry::dvcsr, OK, and gpio_csreg::set_data.
| void halt | ( | void | ) |
| void icmp_hton | ( | struct netpacket * | ) |
Definition at line 394 of file icmp.c.
References htons, netpacket::net_iccksum, netpacket::net_icident, and netpacket::net_icseq.
Referenced by ip_out().

| void icmp_in | ( | struct netpacket * | ) |
Definition at line 26 of file icmp.c.
References disable(), freebuf(), icmpentry::iccount, ICMP_ECHOREPLY, ICMP_ECHOREQST, ICMP_FREE, ICMP_HDR_LEN, icmp_mkpkt(), ICMP_QSIZ, ICMP_RECV, ICMP_SLOTS, ICMP_USED, icmptab, icmpentry::icpid, icmpentry::icqueue, icmpentry::icremip, icmpentry::icstate, icmpentry::ictail, ip_enqueue(), IP_HDR_LEN, netpacket::net_icdata, netpacket::net_icident, netpacket::net_icseq, netpacket::net_ictype, netpacket::net_iplen, netpacket::net_ipsrc, OK, restore(), send(), and SYSERR.
Referenced by ip_local().


| void icmp_init | ( | void | ) |
Definition at line 12 of file icmp.c.
References ICMP_FREE, ICMP_SLOTS, icmptab, and icmpentry::icstate.
Referenced by net_init().

Definition at line 259 of file icmp.c.
References ETH_ADDR_LEN, network::ethucast, getbuf(), ICMP_HDR_LEN, IP_HDR_LEN, IP_ICMP, network::ipucast, memcpy(), netpacket::net_ethsrc, netpacket::net_ethtype, netpacket::net_iccksum, netpacket::net_iccode, netpacket::net_icdata, netpacket::net_icident, netpacket::net_icseq, netpacket::net_ictype, netpacket::net_ipcksum, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipsrc, netpacket::net_iptos, netpacket::net_ipttl, netpacket::net_ipvh, netbufpool, NetData, panic(), and SYSERR.
Referenced by icmp_in(), and icmp_send().


| void icmp_ntoh | ( | struct netpacket * | ) |
Definition at line 408 of file icmp.c.
References netpacket::net_iccksum, netpacket::net_icident, netpacket::net_icseq, and ntohs.
Referenced by ip_in().

Definition at line 150 of file icmp.c.
References currpid, disable(), freebuf(), icmpentry::iccount, icmpentry::ichead, ICMP_HDR_LEN, ICMP_RECV, ICMP_SLOTS, ICMP_USED, icmptab, icmpentry::icpid, icmpentry::icqueue, icmpentry::icstate, IP_HDR_LEN, netpacket::net_icdata, netpacket::net_iplen, OK, recvclr(), recvtime(), restore(), SYSERR, and TIMEOUT.
Referenced by xsh_ping().


Definition at line 103 of file icmp.c.
References disable(), icmpentry::iccount, icmpentry::ichead, ICMP_FREE, ICMP_SLOTS, ICMP_USED, icmptab, icmpentry::icpid, icmpentry::icremip, icmpentry::icstate, icmpentry::ictail, restore(), and SYSERR.
Referenced by xsh_ping().


Definition at line 312 of file icmp.c.
References DEFER_START, DEFER_STOP, disable(), freebuf(), icmpentry::iccount, icmpentry::ichead, ICMP_FREE, ICMP_SLOTS, ICMP_USED, icmptab, icmpentry::icqueue, icmpentry::icstate, OK, resched_cntl(), restore(), and SYSERR.
Referenced by xsh_ping().


Definition at line 225 of file icmp.c.
References disable(), icmp_mkpkt(), ip_send(), restore(), and SYSERR.
Referenced by xsh_ping().


| int32 initintc | ( | void | ) |
Definition at line 18 of file evec.c.
References INTC_SYSCONFIG_SOFTRESET, INTC_SYSSTATUS_RESETDONE, OK, intc_csreg::sysconfig, and intc_csreg::sysstatus.
Referenced by platinit().

優先度に基づいて、キューにプロセスを挿入する。
優先度の降順に並べたキューに対して、以下を行う。 Step1. キューを先頭から走査(whileループ部)
Step2. 挿入しようとしているプロセスIDの優先度より低い優先度を持つプロセスを探す。
Step3.「より低優先度なプロセスノード(Step2で見つけたノード)」と「その前にあるノード」との間に、 挿入したいプロセスを配置する。 なお、キューの末尾は有効な最小キーを下回るため、ループは必ず停止する。
| [in] | pid | 挿入するプロセスID |
| [in] | q | 使用するキューID |
| [in] | key | 挿入するプロセスの優先度(キー) |
Definition at line 20 of file insert.c.
References firstid, isbadpid, isbadqid, OK, qentry::qkey, qentry::qnext, qentry::qprev, queuetab, and SYSERR.
Referenced by ready(), and resched().

Definition at line 9 of file insertd.c.
References isbadpid, isbadqid, OK, qentry::qkey, qentry::qnext, qentry::qprev, queuehead, queuetab, queuetail, and SYSERR.
Referenced by recvtime(), and sleepms().

| devcall ioerr | ( | void | ) |
| devcall ionull | ( | void | ) |
何もしない(デバイステーブルの"don't care"エントリに使用する)
Definition at line 439 of file ip.c.
References disable(), freebuf(), IP_OQSIZ, ipoqueue, iqentry::iqbuf, iqentry::iqsem, iqentry::iqtail, kprintf(), OK, restore(), semcount(), signal(), and SYSERR.
Referenced by icmp_in().


| void ip_hton | ( | struct netpacket * | ) |
Definition at line 338 of file ip.c.
References htonl, htons, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, and netpacket::net_ipsrc.
Referenced by ip_out().

| void ip_in | ( | struct netpacket * | ) |
Definition at line 13 of file ip.c.
References freebuf(), icmp_cksum(), icmp_ntoh(), IP_BCAST, IP_HDR_LEN, IP_ICMP, ip_local(), ip_ntoh(), IP_UDP, network::ipbcast, ipcksum(), network::ipucast, network::ipvalid, kprintf(), netpacket::net_ictype, netpacket::net_ipdst, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipvh, NetData, and udp_ntoh().
Referenced by netin().


| void ip_local | ( | struct netpacket * | ) |
| void ip_ntoh | ( | struct netpacket * | ) |
Definition at line 323 of file ip.c.
References netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipsrc, ntohl, and ntohs.
Referenced by ip_in().

Definition at line 213 of file ip.c.
References ETH_HDR_LEN, eth_hton(), ETHER0, freebuf(), htons, icmp_cksum(), icmp_hton(), IP_HDR_LEN, ip_hton(), IP_ICMP, IP_UDP, ipcksum(), netpacket::net_iccksum, netpacket::net_ictype, netpacket::net_ipcksum, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_udpcksum, OK, SYSERR, udp_hton(), and write().
Referenced by ip_send(), and ipout().


Definition at line 103 of file ip.c.
References arp_resolve(), disable(), ETH_ADDR_LEN, network::ethbcast, freebuf(), IP_BCAST, ip_local(), ip_out(), network::ipbcast, network::ipmask, network::ipprefix, network::iprouter, network::ipucast, memcpy(), netpacket::net_ethdst, netpacket::net_ipdst, NetData, OK, restore(), and SYSERR.
Referenced by icmp_send(), udp_send(), and udp_sendto().


| process ipout | ( | void | ) |
Definition at line 356 of file ip.c.
References arp_resolve(), ETH_ADDR_LEN, network::ethucast, freebuf(), IP_BCAST, ip_local(), IP_OQSIZ, ip_out(), network::ipbcast, network::ipmask, ipoqueue, network::ipprefix, network::iprouter, network::ipucast, iqentry::iqbuf, iqentry::iqhead, iqentry::iqsem, kprintf(), memcpy(), netpacket::net_ethdst, netpacket::net_ethsrc, netpacket::net_ipdst, NetData, OK, and wait().
Referenced by net_init().


指定のプロセスを終了させ、システムから終了させたプロセス情報を取り除く。
Step1. 割り込み禁止状態に移行する。
Step2. プロセスが以下の状態であれば、割り込み許可状態に復元してから処理を終了する。
・引数のPIDが不正
・引数のPIDがNULLプロセス
・引数のPIDで指定されるプロセスがFREE状態
Step3. 現在アクティブのプロセス数が1以下(NULLプロセスのみ動作中)の場合、
全ユーザプロセスが終了したため、システム終了メッセージを表示する。
Step4. 親プロセスに終了させるプロセスのIDを通知する。
Step5. XINU Shell用に確保したSTDIN(標準入力)/STDOUT(標準出力)/STDERR(標準エラー)用のディスクリプタを閉じる。
Step6. 終了させるプロセスが使用していたスタックメモリを解放する。
Step7. 終了させるプロセスの状態に応じて、以下の処理を行う。
・実行中の場合、FREE状態に移行し、再スケジューリングを行う(二度と戻ってこない)。
・SLEEP状態やタイムアウト/メッセージ到着待ちの場合、休眠キューから終了させるプロセスを取り除く。
・WAIT状態の場合、終了させるプロセス分(1個分)だけセマフォカウンタを増やす。次に、READY状態用の処理を行う。
・READY状態の場合、終了させるプロセスをキューから取り出し、終了させるプロセス状態のをFREE状態に遷移する。
Step8. 割り込み許可状態に復元してから、OKを返す。
| [in] | pid | 終了させたいプロセスのID |
Definition at line 31 of file kill.c.
References close(), disable(), freestk, getitem(), isbadpid, NULLPROC, OK, PR_CURR, PR_FREE, PR_READY, PR_RECTIM, PR_SLEEP, PR_WAIT, prcount, procent::prdesc, proctab, procent::prparent, procent::prsem, procent::prstate, procent::prstkbase, procent::prstklen, resched(), restore(), sentry::scount, semtab, send(), SYSERR, unsleep(), and xdone().
Referenced by exit(), userret(), and xsh_kill().


Definition at line 10 of file lexan.c.
References NULLCH, SH_AMPER, SH_BLANK, SH_DQUOTE, SH_GREATER, SH_LESS, SH_NEWLINE, SH_SQUOTE, SH_TAB, SH_TOK_AMPER, SH_TOK_GREATER, SH_TOK_LESS, SH_TOK_OTHER, SHELL_MAXTOK, and SYSERR.
Referenced by shell().

Definition at line 19 of file lfdballoc.c.
References DFILL, FALSE, LF_AREA_DIR, LF_BLKSIZ, Lf_data, lfdata::lf_dir, lfdata::lf_dirdirty, LF_DNULL, lfdata::lf_dskdev, lfdir::lfd_dfree, memset(), panic(), read(), SYSERR, and write().
Referenced by lfsetup().


Definition at line 10 of file lfdbfree.c.
References LF_AREA_DIR, Lf_data, lfdata::lf_dir, lfdbfree::lf_nextdb, OK, and write().
Referenced by lftruncate().


Definition at line 10 of file lfflush.c.
References FALSE, LF_AREA_DIR, Lf_data, lfdata::lf_dir, lfdata::lf_dirdirty, lfdata::lf_dskdev, LF_FREE, lflcblk::lfdbdirty, lflcblk::lfdblock, lflcblk::lfdnum, lflcblk::lfibdirty, lflcblk::lfiblock, lfibput(), lflcblk::lfinum, lflcblk::lfstate, OK, SYSERR, and write().
Referenced by lflclose(), lfsetup(), and lftruncate().


| int32 lfgetmode | ( | char * | ) |
Definition at line 9 of file lfgetmode.c.
References LF_MODE_N, LF_MODE_O, LF_MODE_R, LF_MODE_RW, LF_MODE_W, NULLCH, and SYSERR.
Referenced by lfsopen().

| ibid32 lfiballoc | ( | void | ) |
Definition at line 10 of file lfiballoc.c.
References FALSE, lfiblk::ib_next, LF_AREA_DIR, Lf_data, lfdata::lf_dir, lfdata::lf_dirdirty, lfdata::lf_dskdev, LF_INULL, lfdir::lfd_ifree, lfibget(), panic(), and write().
Referenced by lfsetup().


Definition at line 9 of file lfibclear.c.
References lfiblk::ib_dba, lfiblk::ib_next, lfiblk::ib_offset, LF_DNULL, LF_IBLEN, and LF_INULL.
Referenced by lfscreate(), and lfsetup().

Definition at line 10 of file lfibget.c.
References ib2disp, ib2sect, LF_BLKSIZ, and read().
Referenced by lfiballoc(), lfsckfmt(), lfsetup(), and lftruncate().


Definition at line 10 of file lfibput.c.
References ib2disp, ib2sect, LF_BLKSIZ, OK, read(), SYSERR, and write().
Referenced by lfflush(), lfscreate(), lfsetup(), and lftruncate().


Definition at line 9 of file lflclose.c.
References dentry::dvminor, Lf_data, lfdata::lf_dirdirty, LF_FREE, LF_USED, lflcblk::lfdbdirty, lfflush(), lflcblk::lfibdirty, lfltab, lflcblk::lfmutex, lflcblk::lfstate, OK, signal(), SYSERR, and wait().

Definition at line 9 of file lflcontrol.c.
References dentry::dvminor, kprintf(), LF_CTL_TRUNC, Lf_data, lfdata::lf_mutex, LF_USED, lfltab, lflcblk::lfmutex, lflcblk::lfstate, lftruncate(), signal(), SYSERR, and wait().

Definition at line 9 of file lflgetc.c.
References dentry::dvminor, EOF, ldentry::ld_size, LF_BLKSIZ, LF_USED, lflcblk::lfbyte, lflcblk::lfdblock, lflcblk::lfdirptr, lfltab, lflcblk::lfmutex, lflcblk::lfpos, lfsetup(), lflcblk::lfstate, signal(), SYSERR, and wait().
Referenced by lflread().


Definition at line 11 of file lflinit.c.
References dentry::dvminor, dentry::dvnum, FALSE, LF_BLKSIZ, LF_FREE, LF_INULL, LF_NAME_LEN, lflcblk::lfbyte, lflcblk::lfdbdirty, lflcblk::lfdblock, lflcblk::lfdev, lflcblk::lfdirptr, lflcblk::lfdnum, lflcblk::lfibdirty, lflcblk::lfiblock, lflcblk::lfinum, lfltab, lflcblk::lfmutex, lflcblk::lfname, lflcblk::lfpos, lflcblk::lfstate, memset(), NULL, NULLCH, OK, and semcreate().

Definition at line 9 of file lflputc.c.
References dentry::dvminor, ldentry::ld_size, LF_BLKSIZ, Lf_data, lfdata::lf_dirdirty, LF_USED, lflcblk::lfbyte, lflcblk::lfdbdirty, lflcblk::lfdblock, lflcblk::lfdirptr, lfltab, lflcblk::lfmutex, lflcblk::lfpos, lfsetup(), lflcblk::lfstate, OK, signal(), SYSERR, TRUE, and wait().
Referenced by lflwrite().


Definition at line 9 of file lflseek.c.
References dentry::dvminor, ldentry::ld_size, LF_BLKSIZ, LF_USED, lflcblk::lfbyte, lflcblk::lfdblock, lflcblk::lfdirptr, lfltab, lflcblk::lfmutex, lflcblk::lfpos, lflcblk::lfstate, OK, signal(), SYSERR, and wait().

Definition at line 9 of file lflwrite.c.
References lflputc(), and SYSERR.

Definition at line 10 of file lfscheck.c.
References lfdir::lfd_allones, lfdir::lfd_allzeros, lfdir::lfd_fsysid, lfdir::lfd_nfiles, lfdir::lfd_revid, LFS_ID, OK, and SYSERR.
Referenced by lfsckfmt(), lfsopen(), and xsh_ls().

Definition at line 10 of file lfscreate.c.
References close(), lfiblk::ib_next, LF_AREA_DIR, LF_BLKSIZ, LF_DNULL, LF_INULL, lfibclear(), lfibput(), LFS_ID, memset(), NULLCH, OK, SYSERR, and write().

Definition at line 10 of file lfsetup.c.
References FALSE, lfiblk::ib_dba, lfiblk::ib_next, lfiblk::ib_offset, ldentry::ld_ilist, Lf_data, LF_DMASK, LF_DNULL, lfdata::lf_dskdev, LF_IDATA, LF_IMASK, LF_INULL, lfdata::lf_mutex, lflcblk::lfbyte, lfdballoc(), lflcblk::lfdbdirty, lflcblk::lfdblock, lflcblk::lfdirptr, lflcblk::lfdnum, lfflush(), lfiballoc(), lfibclear(), lflcblk::lfibdirty, lfibget(), lflcblk::lfiblock, lfibput(), lflcblk::lfinum, lflcblk::lfpos, OK, read(), signal(), TRUE, and wait().
Referenced by lflgetc(), and lflputc().


Definition at line 11 of file lfsinit.c.
References FALSE, Lf_data, lfdata::lf_dir, lfdata::lf_dirdirty, lfdata::lf_dirpresent, LF_DISK_DEV, lfdata::lf_dskdev, lfdata::lf_mutex, memset(), NULLCH, OK, and semcreate().

Definition at line 9 of file lfsopen.c.
References FALSE, kprintf(), ldentry::ld_ilist, ldentry::ld_name, ldentry::ld_size, LF_AREA_DIR, LF_BLKSIZ, Lf_data, lfdata::lf_dir, lfdata::lf_dirpresent, LF_DNULL, lfdata::lf_dskdev, LF_FREE, LF_INULL, LF_MODE_N, LF_MODE_O, LF_MODE_RW, lfdata::lf_mutex, LF_NAME_LEN, LF_NUM_DIR_ENT, LF_USED, lflcblk::lfbyte, lfdir::lfd_files, lfdir::lfd_nfiles, lflcblk::lfdbdirty, lflcblk::lfdblock, lflcblk::lfdev, lflcblk::lfdirptr, lflcblk::lfdnum, lfgetmode(), lflcblk::lfibdirty, lflcblk::lfinum, lfltab, lflcblk::lfmode, lflcblk::lfname, lflcblk::lfpos, lfscheck(), lflcblk::lfstate, Nlfl, NULLCH, read(), signal(), SYSERR, TRUE, and wait().

Definition at line 10 of file lftruncate.c.
References lfiblk::ib_dba, lfiblk::ib_next, lfiblk::ib_offset, ldentry::ld_ilist, ldentry::ld_size, LF_BLKSIZ, Lf_data, lfdata::lf_dir, lfdata::lf_dirdirty, LF_DNULL, lfdata::lf_dskdev, LF_IBLEN, LF_INULL, lflcblk::lfbyte, lfdir::lfd_ifree, lflcblk::lfdbdirty, lfdbfree(), lflcblk::lfdblock, lflcblk::lfdirptr, lflcblk::lfdnum, lfflush(), lflcblk::lfibdirty, lfibget(), lfibput(), lflcblk::lfinum, lflcblk::lfpos, OK, and TRUE.
Referenced by lflcontrol().


| void* memcpy | ( | void * | s, |
| const void * | ct, | ||
| int | n | ||
| ) |
メモリAの領域(source)からメモリBの領域(Destination)にN Byteコピーする。
| [in,out] | s | コピー先のアドレス(Destination address) |
| [in] | ct | コピー元のアドレス(Source address) |
| [in] | n | コピーサイズ(Byte) |
Definition at line 13 of file memcpy.c.
Referenced by addargs(), arp_in(), arp_resolve(), dhcp_bld_bootp_msg(), dhcp_bld_req(), dns_bldq(), dns_geta(), dns_getrname(), ethcontrol(), ethread(), ethwrite(), getlocalip(), icmp_mkpkt(), ip_send(), ipout(), raminit(), ramread(), ramwrite(), rdsread(), rdswrite(), udp_send(), and udp_sendto().

| void* memset | ( | void * | s, |
| int | c, | ||
| int | n | ||
| ) |
指定のByteブロックに対して、同じ値をNバイト分書き込む。
| [in,out] | s | Byteブロックへのポインタ(例:文字列) |
| [in] | c | 書き込む値(1Byte) |
| [in] | n | 書き込むサイズ(Byte) |
Definition at line 13 of file memset.c.
Referenced by arp_alloc(), arp_resolve(), dhcp_bld_bootp_msg(), dnslookup(), ethinit(), ethwrite(), getutime(), if(), lfdballoc(), lflinit(), lfscreate(), lfsinit(), net_init(), rdscontrol(), rdsopen(), rdsprocess(), rflread(), rflwrite(), rfscontrol(), rfsopen(), tftpget_mb(), and xsh_rdstest().

Definition at line 9 of file mkbufpool.c.
References BP_MAXB, BP_MAXN, bpentry::bpnext, bpentry::bpsem, bpentry::bpsize, buftab, disable(), freemem(), getmem(), NBPOOLS, nbpools, NULL, restore(), semcreate(), and SYSERR.
Referenced by net_init().


Definition at line 9 of file mount.c.
References disable(), isbaddev, nametab, namlen(), nmentry::ndevice, NM_PRELEN, NM_REPLLEN, NNAMES, nnames, nmentry::nprefix, nmentry::nreplace, OK, restore(), and SYSERR.
Referenced by naminit().


| status naminit | ( | void | ) |
Definition at line 29 of file naminit.c.
References devtab, dentry::dvname, dentry::dvnum, kprintf(), LFILESYS, mount(), NDEVS, NM_MAXLEN, nnames, NULLCH, NULLDEV, NULLSTR, OK, RFILESYS, and SYSERR.

| did32 namrepl | ( | char * | , |
| char | [] | ||
| ) |
| void net_init | ( | void | ) |
Definition at line 15 of file net.c.
References arp_init(), control(), create(), ETH_ADDR_LEN, ETH_CTRL_GET_MAC, ETHER0, getticks(), icmp_init(), ICMP_QSIZ, ICMP_SLOTS, ipoqueue, ipout(), iqentry::iqhead, iqentry::iqsem, iqentry::iqtail, memset(), mkbufpool(), netbufpool, NetData, netin(), netportseed, NETPRIO, NETSTK, NULL, NULLCH, PACKLEN, panic(), resume(), semcreate(), SYSERR, udp_init(), UDP_QSIZ, and UDP_SLOTS.
Referenced by nulluser().


| process netin | ( | void | ) |
| process netout | ( | void | ) |
| qid16 newqueue | ( | void | ) |
グローバルキューテーブルにキューを割り当て、テーブルを初期化する。
newqueue()は、キューテーブルのインデックスNPROC以降にリストの先頭/末尾を作成し、
そのリストに要素を追加できる状態にする。
次にnewqueue()を呼び出された時、キューテーブルの位置に新しいリストの先頭/末尾を配置すべきかは、
newqueue()内のstatic変数nextqidを参照すれば判断できる。
Definition at line 15 of file newqueue.c.
References EMPTY, MAXKEY, MINKEY, NPROC, NQENT, qentry::qkey, qentry::qnext, qentry::qprev, queuehead, queuetab, queuetail, and SYSERR.
Referenced by clkinit(), and sysinit().

| void panic | ( | char * | ) |
Definition at line 9 of file panic.c.
References disable(), kprintf(), and TRUE.
Referenced by icmp_mkpkt(), irq_dispatch(), lfdballoc(), lfiballoc(), lfsckfmt(), net_init(), netin(), ptinit(), ptsend(), rdsbufalloc(), rdsinit(), rdsprocess(), and rfsinit().


| int32 pci_init | ( | void | ) |
| void pdump | ( | struct netpacket * | ) |
Definition at line 9 of file pdump.c.
References arppacket::arp_hlen, ARP_HTYPE, arppacket::arp_htype, arppacket::arp_op, ARP_OP_REQ, ARP_OP_RPLY, arppacket::arp_plen, ARP_PTYPE, arppacket::arp_ptype, arppacket::arp_sndha, arppacket::arp_sndpa, arppacket::arp_tarpa, ETH_HDR_LEN, ICMP_ECHOREPLY, ICMP_ECHOREQST, IP_ICMP, IP_UDP, ipcksum(), kprintf(), netpacket::net_ethdst, netpacket::net_ethsrc, netpacket::net_ethtype, netpacket::net_icident, netpacket::net_icseq, netpacket::net_ictype, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipsrc, netpacket::net_iptos, netpacket::net_ipttl, netpacket::net_udpdport, netpacket::net_udplen, netpacket::net_udpsport, ntohl, ntohs, and UDP_HDR_LEN.

| void pdumph | ( | struct netpacket * | ) |
Definition at line 164 of file pdump.c.
References arppacket::arp_hlen, ARP_HTYPE, arppacket::arp_htype, arppacket::arp_op, ARP_OP_REQ, ARP_OP_RPLY, arppacket::arp_plen, ARP_PTYPE, arppacket::arp_ptype, arppacket::arp_sndha, arppacket::arp_sndpa, arppacket::arp_tarpa, ETH_HDR_LEN, icmp_cksum(), ICMP_ECHOREPLY, ICMP_ECHOREQST, IP_HDR_LEN, IP_ICMP, IP_UDP, ipcksum(), kprintf(), netpacket::net_ethdst, netpacket::net_ethsrc, netpacket::net_ethtype, netpacket::net_icident, netpacket::net_icseq, netpacket::net_ictype, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipsrc, netpacket::net_iptos, netpacket::net_ipttl, netpacket::net_udpdport, netpacket::net_udplen, netpacket::net_udpsport, ntohs, and UDP_HDR_LEN.

| void platinit | ( | void | ) |
Definition at line 31 of file platinit.c.
References am335x_padctl, AM335X_PADCTL_RXTX, AM335X_PADCTL_TX, CONSOLE, counterinit(), devtab, initintc(), uart_csreg::sysc, uart_csreg::syss, UART0_PADRX_ADDR, UART0_PADRX_MODE, UART0_PADTX_ADDR, UART0_PADTX_MODE, UART_SYSC_SOFTRESET, UART_SYSS_RESETDONE, WDTADDR, watchdog_csreg::wspr, and watchdog_csreg::wwps.
Referenced by sysinit().


Definition at line 14 of file ptcount.c.
References disable(), isbadport, porttab, PT_ALLOC, ptentry::ptrsem, ptentry::ptssem, ptentry::ptstate, restore(), semcount(), and SYSERR.

Definition at line 9 of file ptcreate.c.
References disable(), NPORTS, NULL, porttab, PT_ALLOC, PT_FREE, ptentry::pthead, ptentry::ptmaxcnt, ptnextid, ptentry::ptrsem, ptentry::ptseq, ptentry::ptssem, ptentry::ptstate, ptentry::pttail, restore(), semcreate(), and SYSERR.

Definition at line 9 of file ptdelete.c.
References _ptclear(), disable(), isbadport, OK, porttab, PT_ALLOC, PT_FREE, ptnextid, ptentry::ptstate, restore(), and SYSERR.

Definition at line 13 of file ptinit.c.
References getmem(), NPORTS, NULL, OK, panic(), porttab, PT_FREE, ptnode::ptnext, ptnextid, ptentry::ptseq, ptentry::ptstate, and SYSERR.

Definition at line 9 of file ptrecv.c.
References disable(), isbadport, NULL, porttab, PT_ALLOC, ptfree, ptentry::pthead, ptnode::ptmsg, ptnode::ptnext, ptentry::ptrsem, ptentry::ptseq, ptentry::ptssem, ptentry::ptstate, ptentry::pttail, restore(), signal(), SYSERR, and wait().

Definition at line 10 of file ptreset.c.
References _ptclear(), disable(), isbadport, OK, porttab, PT_ALLOC, ptentry::ptstate, restore(), and SYSERR.

Definition at line 9 of file ptsend.c.
References disable(), isbadport, NULL, OK, panic(), porttab, PT_ALLOC, ptfree, ptentry::pthead, ptnode::ptmsg, ptnode::ptnext, ptentry::ptrsem, ptentry::ptseq, ptentry::ptssem, ptentry::ptstate, ptentry::pttail, restore(), signal(), SYSERR, and wait().

Definition at line 9 of file ramclose.c.
References OK.
Definition at line 17 of file raminit.c.
References ramdisk::disk, memcpy(), OK, Ram, RM_BLKS, and RM_BLKSIZ.

Definition at line 10 of file ramopen.c.
References dentry::dvnum.
Definition at line 10 of file ramread.c.
References ramdisk::disk, memcpy(), OK, Ram, and RM_BLKSIZ.

Definition at line 10 of file ramwrite.c.
References ramdisk::disk, memcpy(), OK, Ram, and RM_BLKSIZ.

| process rawin | ( | void | ) |
Definition at line 9 of file rdsbufalloc.c.
References NULL, panic(), rdscblk::rd_availsem, rdscblk::rd_chnext, rdscblk::rd_ctprev, rdscblk::rd_free, rdbuff::rd_next, rdbuff::rd_prev, rdbuff::rd_refcnt, SYSERR, and wait().
Referenced by rdscontrol(), rdsread(), and rdswrite().


Definition at line 9 of file rdsclose.c.
References dentry::dvminor, OK, rdscblk::rd_chnext, rdscblk::rd_ctnext, RD_FREE, rdscblk::rd_free, RD_INVALID, rdbuff::rd_next, RD_OPEN, rdbuff::rd_prev, rdscblk::rd_rhnext, rdscblk::rd_rtnext, rdscblk::rd_state, rdbuff::rd_status, rdstab, and SYSERR.
Referenced by rdscontrol().

| status rdscomm | ( | struct rd_msg_hdr * | , |
| int32 | , | ||
| struct rd_msg_hdr * | , | ||
| int32 | , | ||
| struct rdscblk * | |||
| ) |
Definition at line 11 of file rdscomm.c.
References disable(), FALSE, getlocalip(), htonl, network::ipvalid, kprintf(), NetData, ntohl, ntohs, OK, rdscblk::rd_loc_port, RD_MSG_RESPONSE, rdscblk::rd_registered, RD_RETRIES, rdscblk::rd_seq, rdscblk::rd_ser_ip, rdscblk::rd_ser_port, RD_TIMEOUT, rdscblk::rd_udpslot, restore(), SYSERR, TIMEOUT, TRUE, udp_recv(), udp_register(), and udp_sendto().
Referenced by rdscontrol(), rdsopen(), and rdsprocess().


Definition at line 9 of file rdscontrol.c.
References dentry::dvminor, getpid(), htons, kprintf(), memset(), ntohs, NULLCH, OK, rdbuff::rd_blknum, rdscblk::rd_comproc, rdscblk::rd_comruns, rdscblk::rd_id, RD_IDLEN, RD_INVALID, RD_MSG_DREQ, rdbuff::rd_next, rdbuff::rd_op, RD_OP_SYNC, RD_OPEN, rdbuff::rd_pid, rdbuff::rd_prev, rdbuff::rd_refcnt, rdscblk::rd_reqsem, rdscblk::rd_rtprev, rdscblk::rd_state, rdbuff::rd_status, RDS_CTL_DEL, RDS_CTL_SYNC, rdsbufalloc(), rdsclose(), rdscomm(), rdstab, receive(), recvclr(), resume(), signal(), SYSERR, TIMEOUT, and TRUE.

Definition at line 17 of file rdsinit.c.
References create(), dot2ip(), dentry::dvminor, FALSE, getmem(), NULL, NULLCH, OK, panic(), rdscblk::rd_availsem, RD_BUFFS, rdscblk::rd_chnext, rdscblk::rd_chprev, rdscblk::rd_comproc, rdscblk::rd_comruns, rdscblk::rd_ctnext, rdscblk::rd_ctprev, RD_FREE, rdscblk::rd_free, rdscblk::rd_id, RD_INVALID, RD_LOC_PORT, rdscblk::rd_loc_port, rdbuff::rd_next, RD_PRIO, rdscblk::rd_registered, rdscblk::rd_reqsem, rdscblk::rd_rhnext, rdscblk::rd_rhprev, rdscblk::rd_rtnext, rdscblk::rd_rtprev, rdscblk::rd_seq, rdscblk::rd_ser_ip, rdscblk::rd_ser_port, RD_SERVER_IP, RD_SERVER_PORT, RD_STACK, rdscblk::rd_state, rdbuff::rd_status, rdsprocess(), rdstab, semcreate(), and SYSERR.

Definition at line 10 of file rdsopen.c.
References dentry::dvminor, dentry::dvnum, htons, kprintf(), memset(), ntohs, NULLCH, RD_FREE, rdscblk::rd_id, RD_IDLEN, RD_MSG_OREQ, RD_OPEN, RD_PEND, rdscblk::rd_state, rdscomm(), rdstab, SYSERR, and TIMEOUT.

| void rdsprocess | ( | struct rdscblk * | ) |
Definition at line 12 of file rdsprocess.c.
References htons, memset(), ntohs, NULLCH, OK, panic(), rdscblk::rd_availsem, rdbuff::rd_blknum, RD_BLKSIZ, rdbuff::rd_block, rdscblk::rd_chnext, rdscblk::rd_free, rdscblk::rd_id, RD_IDLEN, RD_MSG_RREQ, RD_MSG_WREQ, rdbuff::rd_next, rdbuff::rd_op, RD_OP_READ, RD_OP_SYNC, RD_OP_WRITE, rdbuff::rd_pid, rdbuff::rd_prev, rdbuff::rd_refcnt, rdscblk::rd_reqsem, rdscblk::rd_rhnext, rdscblk::rd_rtnext, rdscomm(), send(), signal(), SYSERR, TIMEOUT, TRUE, and wait().
Referenced by rdsinit().


Definition at line 9 of file rdsread.c.
References dentry::dvminor, getpid(), memcpy(), OK, rdbuff::rd_blknum, RD_BLKSIZ, rdbuff::rd_block, rdscblk::rd_chnext, rdscblk::rd_comproc, rdscblk::rd_comruns, rdscblk::rd_ctnext, rdscblk::rd_free, RD_INVALID, rdbuff::rd_next, rdbuff::rd_op, RD_OP_READ, RD_OP_WRITE, RD_OPEN, rdbuff::rd_pid, rdbuff::rd_prev, rdbuff::rd_refcnt, rdscblk::rd_reqsem, rdscblk::rd_rhnext, rdscblk::rd_rtprev, rdscblk::rd_state, rdbuff::rd_status, rdsbufalloc(), rdstab, receive(), recvclr(), resume(), signal(), SYSERR, and TRUE.

Definition at line 9 of file rdswrite.c.
References dentry::dvminor, FALSE, getpid(), memcpy(), OK, rdscblk::rd_availsem, rdbuff::rd_blknum, RD_BLKSIZ, rdbuff::rd_block, rdscblk::rd_chnext, rdscblk::rd_comproc, rdscblk::rd_comruns, rdscblk::rd_ctnext, rdbuff::rd_next, rdbuff::rd_op, RD_OP_WRITE, RD_OPEN, rdbuff::rd_pid, rdbuff::rd_prev, rdbuff::rd_refcnt, rdscblk::rd_reqsem, rdscblk::rd_rhnext, rdscblk::rd_rtnext, rdscblk::rd_rtprev, rdscblk::rd_state, rdbuff::rd_status, RD_VALID, rdsbufalloc(), rdstab, resume(), semcount(), semreset(), signal(), SYSERR, and TRUE.

Definition at line 9 of file read.c.
References devtab, disable(), dentry::dvread, isbaddev, restore(), and SYSERR.
Referenced by lfdballoc(), lfibget(), lfibput(), lfsckfmt(), lfsetup(), lfsopen(), netin(), shell(), xsh_ls(), and xsh_rdstest().


プロセスをCPUサービスの対象にする。
Step1. PIDが正常値かどうかを確認する。
Step2. プロセス情報を取得し、ステータスをREADY状態に移行する。
Step3. プロセスをREADYリストに挿入する。
Step4. 再スケジューリングを行う。
| [in] | pid | READY状態に遷移させるプロセスのID |
Definition at line 21 of file ready.c.
References insert(), isbadpid, OK, PR_READY, proctab, procent::prprio, procent::prstate, readylist, resched(), and SYSERR.
Referenced by resume(), semdelete(), semreset(), send(), signal(), signaln(), and wakeup().


| umsg32 receive | ( | void | ) |
Definition at line 9 of file receive.c.
References currpid, disable(), FALSE, PR_RECV, procent::prhasmsg, procent::prmsg, proctab, procent::prstate, resched(), and restore().
Referenced by main(), rdscontrol(), rdsread(), and shell().


| umsg32 recvclr | ( | void | ) |
Definition at line 9 of file recvclr.c.
References currpid, disable(), FALSE, OK, procent::prhasmsg, procent::prmsg, proctab, restore(), and TRUE.
Referenced by arp_resolve(), icmp_recv(), main(), rdscontrol(), rdsread(), shell(), udp_recv(), and udp_recvaddr().


Definition at line 9 of file recvtime.c.
References currpid, disable(), FALSE, insertd(), PR_RECTIM, procent::prhasmsg, procent::prmsg, proctab, procent::prstate, resched(), restore(), sleepq, SYSERR, and TIMEOUT.
Referenced by arp_resolve(), icmp_recv(), udp_recv(), and udp_recvaddr().


| void resched | ( | void | ) |
最優先の適切なプロセスにCPU実行権を渡す。
resched()は、割り込みが禁止された区間で使用される事を想定している。
Step1. 再スケジューリングを遅延させられている場合、再スケジュールを試みた事を記録して終了する。
Step2. カレント(古い)プロセスのプロセステーブルを取得する
Step3. 「カレントプロセスが現在動作中」かつ「READYリスト先頭プロセスより高優先度」の場合は終了する。
Step4. カレントプロセスの状態を実行中からREADY状態に遷移させ、READYリストに挿入する。
Step5. カレントPIDをREADYリストの先頭プロセスとし、そのプロセスをREADY状態から実行状態に遷移させる。
Step6. プリエンプション(実行中のタスクを一時的に中断する動作)のためのタイムスライスを設定する。
Step7. 古いプロセスから新しいプロセスへコンテキストスイッチを行う。
Step8. 古いプロセスはresume()後に、resched()を即座にリターンする。
Definition at line 22 of file resched.c.
References defer::attempt, ctxsw(), currpid, Defer, dequeue(), firstkey, insert(), defer::ndefers, PR_CURR, PR_READY, preempt, proctab, procent::prprio, procent::prstate, procent::prstkptr, QUANTUM, readylist, and TRUE.
Referenced by clkhandler(), kill(), ready(), receive(), recvtime(), resched_cntl(), sleepms(), suspend(), wait(), and yield().


再スケジューリングを延期させるか、もしくは許可させるかを制御する。
| [in] | defer | DEFER_START(延期開始)か、DEFER_STOP(延期終了)を指定する。 |
resched_cntl()は、割り込みが禁止された区間で使用される事を想定している。
引数がDEFER_STARTの場合、以下を実行後にOKを返して終了する。
・延期されたプロセス数が0の場合は、その数を1に変更
・延期されたプロセス数が0の場合は、延期中の再スケジューリングは未実施に変更
引数がDEFER_STOPの場合、以下を実行する。
・延期されたプロセス数が負の値の場合は、SYSERRを返す。
・「延期されたプロセスが1の場合」かつ「延期中に再スケジューリング実施済み」の場合は再スケジューリングを実施し、OKを返す。 引数が不正な値の場合は、SYSERRを返す。
Definition at line 81 of file resched.c.
References defer::attempt, Defer, DEFER_START, DEFER_STOP, FALSE, defer::ndefers, OK, resched(), and SYSERR.
Referenced by ethhandler(), icmp_release(), irq_dispatch(), semdelete(), semreset(), signaln(), ttyhandler(), udp_release(), and wakeup().


| void restore | ( | intmask | ) |
Referenced by addargs(), arp_in(), arp_resolve(), chprio(), close(), control(), create(), freebuf(), freemem(), getbuf(), getc(), getdev(), getmem(), getprio(), getstk(), icmp_in(), icmp_recv(), icmp_register(), icmp_release(), icmp_send(), init(), ip_enqueue(), ip_send(), kgetc(), kill(), kputc(), mkbufpool(), mount(), open(), ptcount(), ptcreate(), ptdelete(), ptrecv(), ptreset(), ptsend(), putc(), rdscomm(), read(), receive(), recvclr(), recvtime(), resume(), seek(), semcount(), semcreate(), semdelete(), semreset(), send(), signal(), signaln(), sleepms(), suspend(), udp_in(), udp_recv(), udp_recvaddr(), udp_register(), udp_release(), udp_send(), udp_sendto(), unsleep(), wait(), write(), and yield().
プロセスを休止状態(サスペンド)からREADY状態に遷移させる。
Step1. 割り込み禁止状態とし、割り込みマスクを保持する。
Step2. PIDが正常値かどうかを確認する。
Step3. レジューム対象プロセス情報を取得する。
Step4. レジューム対象プロセス情報は、休止状態(サスペンド状態)かどうかを確認する。
Step5. 現在の優先度を取得する。
Step6. プロセスをREADY状態(CPUサービス対象)にする。
Step7. 割り込み状態(割り込みマスク)を元に戻す。
| [in] | pid | 休止状態からREADY状態に遷移させるプロセスのID |
Definition at line 20 of file resume.c.
References disable(), isbadpid, PR_SUSP, proctab, procent::prprio, procent::prstate, ready(), restore(), and SYSERR.
Referenced by main(), net_init(), nulluser(), rdscontrol(), rdsread(), rdswrite(), shell(), and startup().


Definition at line 9 of file rflclose.c.
References dentry::dvminor, OK, Rf_data, RF_FREE, rfdata::rf_mutex, rfltab, rflcblk::rfstate, signal(), SYSERR, and wait().

Definition at line 11 of file rflinit.c.
References dentry::dvminor, dentry::dvnum, NULLCH, OK, RF_FREE, RF_NAMLEN, rflcblk::rfdev, rfltab, rflcblk::rfmode, rflcblk::rfname, rflcblk::rfpos, and rflcblk::rfstate.
Definition at line 9 of file rflputc.c.
References OK, rflwrite(), and SYSERR.

Definition at line 9 of file rflread.c.
References dentry::dvminor, htonl, htons, kprintf(), memset(), ntohl, ntohs, NULLCH, Rf_data, RF_DATALEN, RF_FREE, rf_msg_rreq::rf_len, RF_MODE_R, RF_MSG_RREQ, rfdata::rf_mutex, RF_NAMLEN, rf_msg_rreq::rf_pos, rfltab, rflcblk::rfmode, rflcblk::rfname, rflcblk::rfpos, rfscomm(), rflcblk::rfstate, signal(), SYSERR, TIMEOUT, and wait().
Referenced by rflgetc().


Definition at line 9 of file rflseek.c.
References dentry::dvminor, OK, Rf_data, RF_FREE, rfdata::rf_mutex, rfltab, rflcblk::rfpos, rflcblk::rfstate, signal(), SYSERR, and wait().

Definition at line 9 of file rflwrite.c.
References dentry::dvminor, htonl, htons, kprintf(), memset(), ntohl, ntohs, NULLCH, Rf_data, rf_msg_wreq::rf_data, RF_DATALEN, RF_FREE, rf_msg_wreq::rf_len, RF_MODE_W, RF_MSG_WREQ, rfdata::rf_mutex, RF_NAMLEN, rf_msg_wreq::rf_pos, rfltab, rflcblk::rfmode, rflcblk::rfname, rflcblk::rfpos, rfscomm(), rflcblk::rfstate, signal(), SYSERR, TIMEOUT, and wait().
Referenced by rflputc().


| int32 rfscomm | ( | struct rf_msg_hdr * | , |
| int32 | , | ||
| struct rf_msg_hdr * | , | ||
| int32 | |||
| ) |
Definition at line 10 of file rfscomm.c.
References htonl, kprintf(), ntohl, ntohs, Rf_data, rfdata::rf_loc_port, RF_MSG_RESPONSE, rfdata::rf_registered, RF_RETRIES, rfdata::rf_seq, rfdata::rf_ser_ip, rfdata::rf_ser_port, RF_TIMEOUT, rfdata::rf_udp_slot, SYSERR, TIMEOUT, TRUE, udp_recv(), udp_register(), and udp_send().
Referenced by rflread(), rflwrite(), rfscontrol(), rfsndmsg(), and rfsopen().


Definition at line 9 of file rfscontrol.c.
References htons, kprintf(), memset(), ntohl, NULLCH, OK, Rf_data, RF_MSG_DREQ, RF_MSG_MREQ, RF_MSG_SREQ, RF_MSG_TREQ, RF_MSG_XREQ, rfdata::rf_mutex, RF_NAMLEN, RFS_CTL_DEL, RFS_CTL_MKDIR, RFS_CTL_RMDIR, RFS_CTL_SIZE, RFS_CTL_TRUNC, rfscomm(), rfsndmsg(), signal(), SYSERR, TIMEOUT, and wait().

| int32 rfsgetmode | ( | char * | ) |
Definition at line 10 of file rfsgetmode.c.
References NULLCH, RF_MODE_N, RF_MODE_O, RF_MODE_R, RF_MODE_RW, RF_MODE_W, and SYSERR.
Referenced by rfsopen().

Definition at line 16 of file rfsinit.c.
References dot2ip(), FALSE, OK, panic(), Rf_data, RF_LOC_PORT, rfdata::rf_loc_port, rfdata::rf_mutex, rfdata::rf_registered, rfdata::rf_seq, rfdata::rf_ser_ip, rfdata::rf_ser_port, RF_SERVER_IP, RF_SERVER_PORT, semcreate(), and SYSERR.

Definition at line 9 of file rfsndmsg.c.
References htons, kprintf(), ntohl, OK, rfscomm(), SYSERR, and TIMEOUT.
Referenced by rfscontrol().


Definition at line 10 of file rfsopen.c.
References htonl, htons, kprintf(), memset(), Nrfl, ntohs, NULLCH, Rf_data, RF_FREE, rf_msg_oreq::rf_mode, RF_MSG_OREQ, rfdata::rf_mutex, RF_NAMLEN, RF_USED, rflcblk::rfdev, rfltab, rflcblk::rfmode, rflcblk::rfname, rflcblk::rfpos, rfscomm(), rfsgetmode(), rflcblk::rfstate, signal(), SYSERR, TIMEOUT, and wait().

Definition at line 10 of file semcount.c.
References disable(), isbadsem, restore(), S_FREE, sentry::scount, semtab, and SYSERR.
Referenced by ethhandler(), ip_enqueue(), ptcount(), rdswrite(), ttycontrol(), ttyhandle_in(), ttyhandle_out(), and ttyread().


Definition at line 11 of file semcreate.c.
References disable(), newsem(), restore(), sentry::scount, semtab, and SYSERR.
Referenced by ethinit(), lflinit(), lfsinit(), markinit(), mkbufpool(), net_init(), ptcreate(), rdsinit(), rfsinit(), and ttyinit().


Definition at line 9 of file semdelete.c.
References DEFER_START, DEFER_STOP, disable(), getfirst(), isbadsem, OK, ready(), resched_cntl(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by _ptclear().


Definition at line 9 of file semreset.c.
References DEFER_START, DEFER_STOP, disable(), EMPTY, getfirst(), isbadsem, OK, ready(), resched_cntl(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by _ptclear(), and rdswrite().


Definition at line 9 of file send.c.
References disable(), isbadpid, OK, PR_RECTIM, PR_RECV, procent::prhasmsg, procent::prmsg, proctab, procent::prstate, ready(), restore(), SYSERR, TRUE, and unsleep().
Referenced by arp_in(), icmp_in(), kill(), rdsprocess(), and udp_in().


Definition at line 37 of file evec.c.
References intc_csreg::banks, intc_vector, intc_bank::mir, OK, and SYSERR.
Referenced by clkinit(), ethinit(), gpioinit(), and ttyinit().

Definition at line 54 of file shell.c.
References addargs(), cmdent::cbuiltin, cmdent::cfunc, cmdent::cname, control(), create(), EOF, F_CTL_TRUNC, FALSE, fprintf(), lexan(), NAMESPACE, ncmd, NULL, NULLCH, OK, open(), procent::prdesc, proctab, read(), receive(), recvclr(), resume(), SH_NEWLINE, SH_TOK_AMPER, SH_TOK_GREATER, SH_TOK_LESS, SH_TOK_OTHER, SHELL_BAN0, SHELL_BAN1, SHELL_BAN2, SHELL_BAN3, SHELL_BAN4, SHELL_BAN5, SHELL_BAN6, SHELL_BAN7, SHELL_BAN8, SHELL_BAN9, SHELL_BGERRMSG, SHELL_BUFLEN, SHELL_CMDPRIO, SHELL_CMDSTK, SHELL_CREATMSG, SHELL_EXIT, SHELL_EXITMSG, SHELL_INERRMSG, SHELL_MAXTOK, SHELL_OUTERRMSG, SHELL_PROMPT, SHELL_STRTMSG, SHELL_SYNERRMSG, SYSERR, and TRUE.
Referenced by main().


Definition at line 9 of file signal.c.
References dequeue(), disable(), isbadsem, OK, ready(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by ethhandler(), freebuf(), ip_enqueue(), lflclose(), lflcontrol(), lflgetc(), lflputc(), lflseek(), lfsetup(), lfsopen(), mark(), ptrecv(), ptsend(), rdscontrol(), rdsprocess(), rdsread(), rdswrite(), rflclose(), rflread(), rflseek(), rflwrite(), rfscontrol(), rfsopen(), ttycontrol(), ttyhandle_in(), and xsh_ls().


Definition at line 9 of file signaln.c.
References DEFER_START, DEFER_STOP, dequeue(), disable(), isbadsem, OK, ready(), resched_cntl(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by ttyhandle_in(), and ttyhandle_out().


Definition at line 11 of file sleep.c.
References MAXSECONDS, OK, sleepms(), and SYSERR.
Referenced by xsh_sleep().


Definition at line 26 of file sleep.c.
References currpid, disable(), insertd(), OK, PR_SLEEP, proctab, procent::prstate, resched(), restore(), sleepq, SYSERR, and yield().
Referenced by main(), and sleep().


Definition at line 9 of file spicontrol.c.
References spi_csreg::ch, spi_csreg::chconf, spi_csreg::chrx, spi_csreg::chstat, spi_csreg::chtx, dentry::dvcsr, spi_transfer::length, OK, spi_transfer::rxbuf, SPI_CHCONF_FORCE, SPI_CHSTAT_RXS, SPI_CHSTAT_TXS, SPI_CTRL_TRANSFER, and spi_transfer::txbuf.
Definition at line 14 of file spiinit.c.
References am335x_padctl, AM335X_PADCTL_PEN, AM335X_PADCTL_PUP, AM335X_PADCTL_RXTX, AM335X_PADCTL_TX, spi_csreg::ch, spi_csreg::chconf, spi_csreg::chctrl, dentry::dvminor, spi_csreg::modulctrl, OK, SPI_0_ADDR, SPI_0_PADCTL_CS0, SPI_0_PADCTL_D0, SPI_0_PADCTL_D1, SPI_0_PADCTL_SCLK, SPI_1_ADDR, SPI_1_PADCTL_CS0, SPI_1_PADCTL_D0, SPI_1_PADCTL_D1, SPI_1_PADCTL_SCLK, SPI_CHCONF_CLKD, SPI_CHCONF_DPE1, SPI_CHCONF_EPOL, SPI_CHCONF_FORCE, SPI_CHCONF_IS, SPI_CHCONF_WL, SPI_CHCTRL_EN, SPI_MODULCTRL_SINGLE, SPI_SYSCONFIG_SOFTRESET, SPI_SYSSTATUS_RESETDONE, spi_csreg::sysconfig, and spi_csreg::sysstatus.
プロセスを一時停止し、休止状態(サスペンド)に遷移させる。
Step1. 割り込み禁止状態とし、割り込みマスクを保持する。
Step2. PIDが正常値か、NULLプロセスではないかを確認する。
NULLプロセスが休止状態になった場合、動かすプロセスがREADYリストから無くなる可能性がある。
Step3. サスペンド対象プロセス情報を取得する。
Step4. サスペンド可能なプロセスは、現在実行中かREADY状態のプロセスだけである。
READY状態の場合:READYリストからサスペンド対象プロセスを除外し、サスペンド状態とする。
実行中の場合:サスペンド状態とし、再スケジューリングを行う。
それ以外:割り込み状態(割り込みマスク)を元に戻し、エラー終了
Step5. 現在の優先度を取得する。 Step6. 割り込み状態(割り込みマスク)を元に戻す。
| [in] | pid | 休止状態に移行させるプロセスのID |
Definition at line 23 of file suspend.c.
References disable(), getitem(), isbadpid, NULLPROC, PR_CURR, PR_READY, PR_SUSP, proctab, procent::prprio, procent::prstate, resched(), restore(), and SYSERR.

| void trap | ( | int32 | ) |
Definition at line 9 of file ttycontrol.c.
References dentry::dvminor, FALSE, OK, semcount(), signal(), SYSERR, TC_ECHO, TC_ICHARS, TC_MODEC, TC_MODEK, TC_MODER, TC_NEXTC, TC_NOECHO, TRUE, ttytab, TY_IMCBREAK, TY_IMCOOKED, TY_IMRAW, ttycblk::tyiecho, ttycblk::tyimode, ttycblk::tyisem, ttycblk::tyitail, and wait().

Definition at line 9 of file ttygetc.c.
References dentry::dvminor, EOF, ttytab, TY_IBUFLEN, TY_IMCOOKED, ttycblk::tyeof, ttycblk::tyeofch, ttycblk::tyibuff, ttycblk::tyihead, ttycblk::tyimode, ttycblk::tyisem, and wait().
Referenced by ttyread().


| void ttyhandle_in | ( | struct ttycblk * | , |
| struct uart_csreg * | |||
| ) |
Definition at line 13 of file ttyhandle_in.c.
References uart_csreg::buffer, echoch(), eputc(), erase1(), FALSE, semcount(), signal(), signaln(), TRUE, ttykickout(), TY_IBUFLEN, TY_IMCBREAK, TY_IMRAW, TY_NEWLINE, TY_RETURN, ttycblk::tyeof, ttycblk::tyeofch, ttycblk::tyibuff, ttycblk::tyicrlf, ttycblk::tyicursor, ttycblk::tyiecho, ttycblk::tyierase, ttycblk::tyierasec, ttycblk::tyierasec2, ttycblk::tyifullc, ttycblk::tyikill, ttycblk::tyikillc, ttycblk::tyimode, ttycblk::tyisem, ttycblk::tyitail, ttycblk::tyoflow, ttycblk::tyoheld, ttycblk::tyostart, and ttycblk::tyostop.
Referenced by ttyhandler().


| void ttyhandle_out | ( | struct ttycblk * | , |
| struct uart_csreg * | |||
| ) |
Definition at line 10 of file ttyhandle_out.c.
References uart_csreg::buffer, uart_csreg::ier, semcount(), signaln(), uart_csreg::txfifo_lvl, TY_EBUFLEN, TY_OBUFLEN, ttycblk::tyebuff, ttycblk::tyehead, ttycblk::tyetail, ttycblk::tyobuff, ttycblk::tyohead, ttycblk::tyoheld, ttycblk::tyosem, UART_FIFO_SIZE, and UART_IER_ETBEI.
Referenced by ttyhandler().


| void ttyhandler | ( | uint32 | ) |
Definition at line 9 of file ttyhandler.c.
References uart_csreg::buffer, CONSOLE, DEFER_START, DEFER_STOP, devtab, dentry::dvcsr, dentry::dvminor, if(), uart_csreg::iir, uart_csreg::lsr, resched_cntl(), ttyhandle_in(), ttyhandle_out(), ttytab, UART_IIR_IDMASK, UART_IIR_IRQ, UART_IIR_MSC, UART_IIR_RDA, UART_IIR_RLSI, UART_IIR_RTO, UART_IIR_THRE, UART_LSR_BI, and UART_LSR_DR.

Definition at line 17 of file ttyinit.c.
References dentry::dvcsr, dentry::dvintr, dentry::dvirq, dentry::dvminor, FALSE, uart_csreg::lcr, uart_csreg::mdr1, OK, semcreate(), set_evec(), TRUE, ttykickout(), ttytab, TY_BACKSP, TY_BACKSP2, TY_EOFCH, TY_FULLCH, TY_IMCOOKED, TY_KILLCH, TY_OBUFLEN, TY_STOPCH, TY_STRTCH, ttycblk::tyebuff, ttycblk::tyecrlf, ttycblk::tyehead, ttycblk::tyeof, ttycblk::tyeofch, ttycblk::tyetail, ttycblk::tyevis, ttycblk::tyibuff, ttycblk::tyicrlf, ttycblk::tyicursor, ttycblk::tyieback, ttycblk::tyiecho, ttycblk::tyierase, ttycblk::tyierasec, ttycblk::tyierasec2, ttycblk::tyifullc, ttycblk::tyihead, ttycblk::tyikill, ttycblk::tyikillc, ttycblk::tyimode, ttycblk::tyisem, ttycblk::tyitail, ttycblk::tyobuff, ttycblk::tyocrlf, ttycblk::tyoflow, ttycblk::tyohead, ttycblk::tyoheld, ttycblk::tyosem, ttycblk::tyostart, ttycblk::tyostop, ttycblk::tyotail, UART_DLL, UART_DLM, UART_FCR_EFIFO, UART_FCR_RRESET, UART_FCR_TRESET, UART_FCR_TRIG2, UART_LCR_8N1, UART_LCR_DLAB, and UART_MDR1_16X.

| void ttykickout | ( | struct uart_csreg * | ) |
Definition at line 10 of file ttykickout.c.
References uart_csreg::ier, UART_IER_ERBFI, and UART_IER_ETBEI.
Referenced by eputc(), ttyhandle_in(), ttyinit(), and ttyputc().

Definition at line 9 of file ttyputc.c.
References dentry::dvcsr, dentry::dvminor, OK, ttykickout(), ttytab, TY_NEWLINE, TY_OBUFLEN, TY_RETURN, ttycblk::tyobuff, ttycblk::tyocrlf, ttycblk::tyosem, ttycblk::tyotail, and wait().
Referenced by ttywrite().


Definition at line 9 of file ttyread.c.
References dentry::dvminor, EOF, semcount(), SYSERR, ttygetc(), ttytab, TY_IMCOOKED, TY_NEWLINE, TY_RETURN, ttycblk::tyimode, and ttycblk::tyisem.

Definition at line 9 of file ttywrite.c.
References OK, SYSERR, and ttyputc().

| void udp_hton | ( | struct netpacket * | ) |
Definition at line 567 of file udp.c.
References htons, netpacket::net_udpdport, netpacket::net_udplen, and netpacket::net_udpsport.
Referenced by ip_out().

| void udp_in | ( | struct netpacket * | ) |
Definition at line 29 of file udp.c.
References disable(), freebuf(), netpacket::net_ipsrc, netpacket::net_udpdport, netpacket::net_udpsport, OK, restore(), send(), udpentry::udcount, udpentry::udlocport, UDP_FREE, UDP_QSIZ, UDP_RECV, UDP_SLOTS, UDP_USED, udpentry::udpid, udptab, udpentry::udqueue, udpentry::udremip, udpentry::udremport, udpentry::udstate, and udpentry::udtail.
Referenced by ip_local().


| void udp_init | ( | void | ) |
Definition at line 12 of file udp.c.
References UDP_FREE, UDP_SLOTS, udptab, and udpentry::udstate.
Referenced by net_init().

| void udp_ntoh | ( | struct netpacket * | ) |
Definition at line 553 of file udp.c.
References netpacket::net_udpdport, netpacket::net_udplen, netpacket::net_udpsport, and ntohs.
Referenced by ip_in().

Definition at line 146 of file udp.c.
References currpid, disable(), freebuf(), if(), netpacket::net_udpdata, netpacket::net_udplen, OK, recvclr(), recvtime(), restore(), SYSERR, TIMEOUT, udpentry::udcount, udpentry::udhead, UDP_HDR_LEN, UDP_QSIZ, UDP_RECV, UDP_SLOTS, UDP_USED, udpentry::udpid, udptab, udpentry::udqueue, and udpentry::udstate.
Referenced by dnslookup(), getlocalip(), getutime(), rdscomm(), rfscomm(), and xsh_udpecho().


Definition at line 227 of file udp.c.
References currpid, disable(), freebuf(), if(), netpacket::net_ipsrc, netpacket::net_udpdata, netpacket::net_udplen, netpacket::net_udpsport, OK, recvclr(), recvtime(), restore(), SYSERR, TIMEOUT, udpentry::udcount, udpentry::udhead, UDP_HDR_LEN, UDP_QSIZ, UDP_RECV, UDP_SLOTS, UDP_USED, udpentry::udpid, udptab, udpentry::udqueue, and udpentry::udstate.
Referenced by tftp_send1(), and xsh_udpeserver().


Definition at line 85 of file udp.c.
References disable(), restore(), SYSERR, udpentry::udcount, udpentry::udhead, udpentry::udlocport, UDP_FREE, UDP_SLOTS, UDP_USED, udpentry::udpid, udptab, udpentry::udremip, udpentry::udremport, udpentry::udstate, and udpentry::udtail.
Referenced by dnslookup(), getlocalip(), getutime(), rdscomm(), rfscomm(), tftpget_mb(), xsh_udpecho(), and xsh_udpeserver().


Definition at line 502 of file udp.c.
References DEFER_START, DEFER_STOP, disable(), freebuf(), OK, resched_cntl(), restore(), SYSERR, udpentry::udcount, udpentry::udhead, UDP_FREE, UDP_QSIZ, UDP_SLOTS, udptab, udpentry::udqueue, and udpentry::udstate.
Referenced by dnslookup(), getlocalip(), getutime(), tftpget_mb(), and xsh_udpecho().


Definition at line 316 of file udp.c.
References disable(), ETH_ADDR_LEN, ETH_HDR_LEN, network::ethucast, getbuf(), ip_send(), IP_UDP, network::ipucast, memcpy(), netpacket::net_ethsrc, netpacket::net_ethtype, netpacket::net_ipcksum, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipsrc, netpacket::net_iptos, netpacket::net_ipttl, netpacket::net_ipvh, netpacket::net_udpcksum, netpacket::net_udpdata, netpacket::net_udpdport, netpacket::net_udplen, netpacket::net_udpsport, netbufpool, NetData, OK, restore(), SYSERR, udpentry::udlocport, UDP_FREE, UDP_HDR_LEN, UDP_SLOTS, udptab, udpentry::udremip, udpentry::udremport, and udpentry::udstate.
Referenced by dnslookup(), getutime(), rfscomm(), and xsh_udpecho().


Definition at line 417 of file udp.c.
References disable(), ETH_ADDR_LEN, ETH_HDR_LEN, network::ethucast, getbuf(), ip_send(), IP_UDP, network::ipucast, memcpy(), netpacket::net_ethsrc, netpacket::net_ethtype, netpacket::net_ipcksum, netpacket::net_ipdst, netpacket::net_ipfrag, netpacket::net_ipid, netpacket::net_iplen, netpacket::net_ipproto, netpacket::net_ipsrc, netpacket::net_iptos, netpacket::net_ipttl, netpacket::net_ipvh, netpacket::net_udpcksum, netpacket::net_udpdata, netpacket::net_udpdport, netpacket::net_udplen, netpacket::net_udpsport, netbufpool, NetData, OK, restore(), SYSERR, udpentry::udlocport, UDP_FREE, UDP_HDR_LEN, UDP_SLOTS, udptab, and udpentry::udstate.
Referenced by getlocalip(), rdscomm(), tftp_send1(), tftpget_mb(), and xsh_udpeserver().


Definition at line 11 of file unsleep.c.
References disable(), getitem(), isbadpid, NPROC, OK, PR_RECTIM, PR_SLEEP, proctab, procent::prstate, qentry::qkey, qentry::qnext, queuetab, restore(), and SYSERR.
Referenced by kill(), and send().


| void userret | ( | void | ) |
Definition at line 9 of file wait.c.
References currpid, disable(), enqueue(), isbadsem, OK, PR_WAIT, proctab, procent::prsem, procent::prstate, resched(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by ethread(), ethwrite(), getbuf(), ipout(), lflclose(), lflcontrol(), lflgetc(), lflputc(), lflseek(), lfsetup(), lfsopen(), mark(), ptrecv(), ptsend(), rdsbufalloc(), rdsprocess(), rflclose(), rflread(), rflseek(), rflwrite(), rfscontrol(), rfsopen(), ttycontrol(), ttygetc(), ttyputc(), and xsh_ls().


| void wakeup | ( | void | ) |
Definition at line 9 of file wakeup.c.
References DEFER_START, DEFER_STOP, dequeue(), firstkey, nonempty, ready(), resched_cntl(), and sleepq.
Referenced by clkhandler().


Definition at line 9 of file write.c.
References devtab, disable(), dentry::dvwrite, isbaddev, restore(), and SYSERR.
Referenced by arp_in(), arp_resolve(), ip_out(), lfdballoc(), lfdbfree(), lfflush(), lfiballoc(), lfibput(), lfscreate(), and xsh_rdstest().


| void xdone | ( | void | ) |
最終プロセスの終了時、システム終了メッセージを表示する。
Definition at line 10 of file xdone.c.
References halt(), and kprintf().
Referenced by kill().


1.8.13